#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include "kirtase/messages.h"
#include "kirtase/findbook.h"
#include "kirtase/databook.h"
#include "kirtase/classwizard.h"
#if QT_VERSION >= 0x040600
    #include "kirtase/animation.h"
#endif

#include <QTextBrowser>
#include <QtGui/QMainWindow>
#include <QTreeWidgetItem>
#include <QDomDocument>
 #include <QStandardItem>
class QLabel;
class QTreeWidget;
class QLabel;
class QProgressBar;
class QComboBox;
class QPushButton;
class QLineEdit;


namespace Ui
{
    class MainWindowClass;
}
class MainWindow : public QMainWindow
{
    Q_OBJECT
    messages *Messages;
    findbook *Findbook;
    ClassWizard *Wizard;
#if QT_VERSION >= 0x040600
    View *view;
#endif
public:
    MainWindow(QWidget *parent=0);
    ~MainWindow();
    databook *DataBook;
protected:


    virtual void closeEvent(QCloseEvent *e);
private:
    Ui::MainWindowClass *ui;

    QGraphicsScene m_scene;

    int m_currentBookIndex  ;
    enum  { NumIndex = 10};
    QTextBrowser *m_txtBrowser;
    //QTextBrowser *m_txtBetaka;
    QLabel* m_txtBetaka;
    QLabel *labelAnim;
    QIcon m_icondir;
    QIcon m_icondfile;
    QIcon m_iconbook;
    QIcon m_iconaut;
    QIcon m_iconGroup;
    QLabel *labelTextFind;
    // QTreeWidget *m_treeWidgetFind;                //شجرة نتائج البحث
    QTreeWidget *m_treeFahras[NumIndex];

    QLineEdit *m_lineEditSearchInDoc;

    QAction *AC_nextHistorie;
    QAction *AC_prevHistorie;
    enum { MaxRecentFiles = 15 };
    QAction *recentFileActs[MaxRecentFiles];
    QAction *AC_go_search_indoc;
    QAction *AC_go_search_incurbook;
    QAction *AC_remove_book;                    //قائمة حذف الكتاب
    QAction *AC_openBookInNewTab;
    QAction *AC_open_book;                      //قائمة فتح كتاب
    QAction *AC_updat_book;                     //قائمة تعديل معلومات الكتاب
    QAction *AC_path_book;
    QAction *AC_remove_groupe;
    QAction *AC_add_groupe;
    QAction *AC_add_categorie;
    QAction *AC_rename_groupe;
    //قائمة النسخ
    //    QAction *AC_past;
    //    QAction *AC_cut;
    QLineEdit *lineEditFindFah;
    QAction  *colapsTreeFah;
    QAction  *expandTreeFah;
    QAction  *itemAddAction;            //قائمة اظافة عنصر
    QAction  *itemAddChildAction;                 //قائمة اظافة ابن
    QAction  *findBkOrHtAction;                  //


    QPushButton *BtnStopFind;                 //زر وقف البحث
    QLabel *m_label_page;                         //عنوان الصفحة
    QLabel *m_label_progress_info;                //معلومات عن الكتاب المفتوح
    QLabel *m_label_progress;                     //عنوان شريط المعلومات
    QLabel *m_label_progressImg;

    QProgressBar *m_progressFind;                   //شريط الحالة للبحث
    QString m_textfind;                           //النص الذي يتم البحث عنه

    QString m_pathUser;                               //مسار البرنامج
    QString m_pathApp;
    QString m_pathCostm;
    QString m_BookName[NumIndex];                          //اسم مسار الكتاب الحالي
    QString m_BookTitle[NumIndex];                         //اسم الكتاب الحالي
    QString m_BookAuthor[NumIndex];                        //اسم المؤلف
    QString m_MystyleName;                            //السمة الحالية
    QString m_WebColorBack;                           //لون خلفية النص
    QString m_WebFont;                            //نوع النص
    QString m_WebFontTitle;
    QString m_WebFontColor;
    QString m_WebFontTitleColor;
    QString m_WebFontFindColor;
    QString m_WebFontPrefertColor;
    bool m_WebCadre;
    int m_recentNbr;
    // int m_getfind;
    //ترميز لنوع البحث


    QList<QString> m_listTab;
    QList<int> m_listHistorieNext[NumIndex];
    QList<int> m_listHistoriePrev[NumIndex];
    bool m_isTefsir[NumIndex];                                //هل كتاب التفسير يحتوي على فهرسة الايات والسور
    bool m_treeFahrass_modified[NumIndex];
    bool m_toolEditFahrass[NumIndex];
    bool m_book_modified[NumIndex];
    QString m_currentBookPath[NumIndex];
    bool m_treeGroup_modified;
    bool m_find_tree_book;

public slots:



private slots:

    void openRecentFile();
    void on_actionFindDelete_triggered();
    void on_actionFindItemDown_triggered();
    void on_actionFindItemUp_triggered();
    void on_actionTreeD_toggled(bool );
    void on_actionAnimHistorie_triggered();
    void on_actionAnimGroup_triggered();
    void on_actionPageIntro_triggered();
    void tabCreatTabNew();
    void open_dataBase(QString name,QString title,QString Autor,int position);  //فتح الكتاب المحدد
    void itemFahrasAddChild();
    void itemFahrasAdd();
    bool closeMessages(QString title,int index);

    // void clipboardDataChanged();

    void on_actionFindLoad_triggered();
    void on_actionFindSave_triggered();
    void on_actionGotoPage_triggered();
    void on_actionOrganizeFahrasse_triggered();
    void on_actionHelp_triggered();
    void itemFahrasRename();
    void on_actionRemoveTechkil_triggered();
    void printPreview(QPrinter *printer);
    void on_actionPrint_triggered();
    void on_actionPrintPreview_triggered();

    void on_action_about_triggered();
    void on_action_close_triggered();
    void on_action_fulscreen_triggered();                       //ملأ الشاشة
    void on_comboBox_currentIndexChanged(int index);             //تحميل الاجزاء او السور




    void on_actionExport_triggered();


    //الالسن----tabs--------------
    void on_actionNewTab_triggered();
    void on_tabWidget_tabCloseRequested(int index);
    void on_tabWidget_currentChanged(int );
    void tabOpenInNewTab();

    void tabCreatFahrass();

    //favorite
    void on_actionFavItemRen_triggered();
    void on_actionFavItemDown_triggered();
    void on_actionFavItemUp_triggered();
    void on_action_favorit_triggered();
    void on_actionFavDelete_triggered();
    void on_actionFavSave_triggered();

    //عمليات البحث
    void on_pushButton_gofind_clicked();
    void on_lineEdit_find_cur_textChanged(QString );
    void find_favo_textChanged(QString );  //البحث في شجرة المفضلة
    void searchInTreeFah(QString );//البحث في شجرة الفهرسة
    void searchInTreebook(QString );        //البحث في شجرة الكتب
    void showResultFind(QTreeWidgetItem* item);         //النقر على عنصر شجرة نتائج البحث
    void find_in_curbook();              //البحث في الكتاب الحالي

    void find_bookOrHautor();                    // مؤلف البحث عن كتاب
    void on_actionFind_all_triggered();  //تنفيذ البحث في مجموعة كتب
    void search_stop();                  //توقيف عملية البحث
    void search_indoc();                 //البحث في الصفحة الحالية
    //عمليات التحميل
    void charge_groupe();                //تحميل مجموعة الكتب
    void updateIconEndAction();
    //عمليات السمات والموضع والاحجام
    void Savelayou();                     //حفظ البيانات للموضع والسمة
    void loadLayout();                    //تحميل بيانات
    void on_action_font_triggered();      //تنفيذ  نافذة تغيير لون النص
    //  void loadStyleSheet(const QString &sheetName);   //تنفيذ  تغيير السمة
    void on_actionOption_triggered();
    //عمليات تفعيل الشجرات
    void fahras_itemActivated(QTreeWidgetItem* item);    //تفعيل عنصر شجرة الفهرسة
    void fahras_itemClicked(QTreeWidgetItem* item);       //النقر على عنوان الفهرسة
    void on_treeWidget_books_itemSelectionChanged();                    //عند تغير التحديد في شجرة الكتب
    void on_treeWidget_curaan_itemActivated(QTreeWidgetItem* item);     //تفعيل عنصر شجرة القرءان الكريم
    void on_treeWidget_books_itemActivated(QTreeWidgetItem* item);      //تفعيل عنصر شجرة  الكتب
    void on_treeWidget_fav_itemActivated(QTreeWidgetItem* item);
    void on_treeWidget_books_customContextMenuRequested();       //انشاء قائمة لشجرة الكتب

    //عمليات التنقل بين السجلات
    void on_action_last_triggered();             //اخر صفحة
    void on_action_prev_triggered();             //الصفحة السابقة
    void on_action_next_triggered();             //الصفحة التالية
    void on_action_first_triggered();            //الصفحة الاولى
    void bookValueChanged(int pos);          //تغير رقم السبين للتنقل بين الصفحات

    //عمليات الفتح

    void menuOpenBook();                           //تنفيذ قائمة فتح الكتاب

    void on_pushButton_gotafsir_clicked();          //تحمبل كتاب التفسير

    //عملية تحويل النصوص
    void convert_text(QString txt);           //عملية تحويل النص

    //اظافة الكتب وتحريرها
    void on_action_import_triggered();        //استراد ملفات نصية
    void menu_BookRemove();                   //تنفيذ عملية حذف الكتاب
    void menu_BookUpdat();                    //تحرير بيانات الكتاب
    void menu_BookPath();                    //معرفة مسار الكتاب
    void menu_GroupeAdd();
    void menu_CategorieAdd();
    void menu_Add(bool categorie);
    void menu_GroupeRemove();
    void menu_GroupeRename();
    void on_action_addBoook_triggered();      //تنفيذ نافذة اظافة كتاب
    void on_actionMdb_triggered();
    void saveCurrentBook(int index);
    // fahrasse عمليات تحرير الفهرسة

    void add_intree(bool child);              //اظافة عنصر الى الفهرسة
    void menuSaveFahrass();                 //******
    void saveBookEndFahras();//زر حفظ الفهرسة
    void on_pushButtonEditClose_clicked();
    void itemFahrasMoveUp();          //نقل عنصر للاعللا في الفهرسة
    void itemFahrasMoveDown();        //للاسفل
    void itemFahrasRemove();      //حذف العنصر
    void on_action_edit_triggered();          //زر وقائمة تفعيل التحرير
    void saveFahrass(int index);

    void on_actionHiperlink_triggered();
    void highlighted(QUrl );
    void anchorClicked(QUrl );
    //**********************animation**************
    void startAnimation();
    void startAnimationBook();

    void on_lineEdit_textChanged(QString );



    //**********************
    void historieNext();
    void historiePrev();




};

#endif // MAINWINDOW_H
